package IA;

import java.util.ArrayList;
import MotorGrafico.Indice;
import MotorGrafico.Tabuleiro;

public class NodeOfState {

	private Tabuleiro tabuleiro; //estado
	//private ArrayList<NodeOfState> children; // filhos
	private NodeOfState parent; //nó pai
	private int depth; //profundidade na árvore
	private int valor;
	public Integer alfa;
	public Integer beta;
	public Indice origem;
	public Indice alvo;
	
	public NodeOfState(int valor){
		this.valor = valor;
	}

	public NodeOfState(Tabuleiro tab, /*ArrayList<NodeOfState> c,*/Indice o, Indice a, NodeOfState dad, int depth){
		this.tabuleiro = tab;
		//this.children = c;
		this.alfa = Integer.MIN_VALUE;
		this.beta = Integer.MAX_VALUE;
		this.origem = o;
		this.alvo = a;
		this.parent = dad;
		this.depth = depth;
	}
	
	public int getDepth(){
		return this.depth;
	}
	
	public NodeOfState getParent(){
		return this.parent;
	}
	
	public Tabuleiro getTabuleiro() {
		return tabuleiro;
	}
	public void setTabuleiro(Tabuleiro tabuleiro) {
		this.tabuleiro = tabuleiro;
	}
	//public ArrayList<NodeOfState> getChildren() {
		//return children;
	//}
	//public void setChildren(ArrayList<NodeOfState> children) {
		//this.children = children;
	//}	
	public void setValor(int d){
		this.valor = d;
	}
	public int getValor(){
		return this.valor;
	}
	
	public void printValores(){
		System.out.println("Valor: "+this.valor);
		System.out.println("Alfa: "+this.alfa);
		System.out.println("Beta: "+this.beta);
	}
	
}
